home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1998 November / Freeware November 1998.img / dist / fw_UDELxntp.idb / usr / freeware / src / xntp-3.4o-export / lib / syssignal.c.z / syssignal.c
C/C++ Source or Header  |  1998-01-21  |  625b  |  46 lines

  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <signal.h>
  4.  
  5. #include "ntp_stdlib.h"
  6.  
  7. #if defined(NTP_POSIX_SOURCE)
  8. #include <errno.h>
  9.  
  10. extern int errno;
  11.  
  12. void
  13. signal_no_reset(sig, func)
  14. int sig;
  15. void (*func)();
  16. {
  17.     int n;
  18.     struct sigaction vec;
  19.  
  20.     vec.sa_handler = func;
  21.     sigemptyset(&vec.sa_mask);
  22.     vec.sa_flags = 0;
  23.  
  24.     while (1) {
  25.         n = sigaction(sig, &vec, NULL);
  26.     if (n == -1 && errno == EINTR) continue;
  27.     break;
  28.     }
  29.     if (n == -1) {
  30.     perror("sigaction");
  31.         exit(1);
  32.     }
  33. }
  34.  
  35. #else
  36. RETSIGTYPE
  37. signal_no_reset(sig, func)
  38. int sig;
  39. RETSIGTYPE (*func)();
  40. {
  41.     signal(sig, func);
  42.  
  43. }
  44. #endif
  45.  
  46.